Skip to content

[Week3] hyewon#9

Open
hyewonimdang wants to merge 3 commits into
mainfrom
week3/hyewon
Open

[Week3] hyewon#9
hyewonimdang wants to merge 3 commits into
mainfrom
week3/hyewon

Conversation

@hyewonimdang

@hyewonimdang hyewonimdang commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

📚 알고리즘 (총 3문제)


📌 문제 1 - 스택 수열

  • 플랫폼: BOJ
  • 난이도: 실버 II

💡 접근 방법

핵심 아이디어

  • 스택을 이용해 주어진 수열을 만들 수 있는지 시뮬레이션한다.
  • 1부터 차례대로 push하면서 필요한 시점에 pop한다.
  • 스택의 top이 현재 수와 같지 않으면 불가능한 경우이다.

상세 설명

  • current를 1부터 시작하여 필요한 숫자까지 스택에 push한다.
  • 스택의 top이 현재 목표 값과 같으면 pop하고 -를 기록한다.
  • 만약 top이 다르면 해당 수열은 만들 수 없으므로 "NO"를 출력한다.

🧠 알게 된 점

  • 스택 문제는 직접 시뮬레이션으로 접근하는 것이 효과적이다.
  • push와 pop의 순서를 기록하면 문제를 쉽게 해결할 수 있다.
  • 불가능한 조건을 빠르게 판단하는 것이 중요하다.

⏱️ 복잡도

❗시간복잡도: $O(N)$
❗공간복잡도: $O(N)$


📌 문제 2 - 스택으로 큐 구현

  • 플랫폼: Programmers
  • 난이도: Lv2

💡 접근 방법

핵심 아이디어

  • 스택 2개를 사용해 큐의 FIFO 구조를 구현한다.
  • stack1은 입력, stack2는 출력 역할을 한다.
  • stack2가 비어 있을 때만 stack1의 요소를 모두 옮긴다.

상세 설명

  • stack2가 비어 있으면 stack1의 모든 요소를 pop하여 stack2에 push한다.
  • 이 과정에서 순서가 뒤집혀 먼저 들어온 값이 먼저 나오게 된다.
  • 이후 stack2.pop()을 통해 큐의 dequeue 연산을 수행한다.

🧠 알게 된 점

  • 스택만으로도 큐의 동작을 구현할 수 있다.
  • 핵심은 필요할 때만 요소를 이동시키는 것이다.
  • 이 방식은 큐 구현에서 자주 쓰이는 전형적인 패턴이라고 한다.

⏱️ 복잡도

❗시간복잡도: $O(1)$
❗공간복잡도: $O(N)$


📌 문제 3 - 타겟 넘버

  • 플랫폼: Programmers
  • 난이도: Lv2

💡 접근 방법

핵심 아이디어

  • 각 숫자마다 + 또는 - 두 가지 선택을 하며 탐색한다.
  • 모든 경우의 수를 탐색하기 위해 DFS(깊이 우선 탐색)를 사용한다.
  • 최종 합이 target과 같을 때 경우의 수를 증가시킨다.

상세 설명

  • dfs(index, current_sum) 형태로 현재 인덱스와 누적 합을 관리한다.
  • 매 단계마다 현재 숫자를 더하는 경우와 빼는 경우로 재귀 호출한다.
  • 인덱스가 끝까지 도달했을 때 target과 같으면 answer를 증가시킨다.

🧠 알게 된 점

  • 완전탐색 문제는 DFS로 쉽게 해결할 수 있다.
  • 상태는 '현재 인덱스 + 현재 합'으로 정의하는 것이 중요하다.
  • nonlocal을 사용하면 외부 변수(answer)를 재귀 함수에서 수정할 수 있다.

⏱️ 복잡도

❗시간복잡도: $O(2^N)$
❗공간복잡도: $O(N)$


🚀 한줄 회고

  • 이번 주 핵심 성장 포인트: 스택, 큐에 대한 코드 구현에 대해 어느 정도 감을 잡아가는 것 같다.
  • 다음 주 개선 목표: 재귀 등 부족한 개념에 대한 문제들 풀어보기

@hyewonimdang hyewonimdang requested review from dohy-eon and kim3360 April 8, 2026 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants